package org.hk.basic.studyspring;

import java.util.ArrayList;
import java.util.List;

public class Car {
    Wheel[] wheels = new DryWheel[4];
    //一篮水果   =  一篮苹果 //为什么不允许 左边 一篮苹果就直接等价于一篮水果 因为有操作漏洞，按一篮水果的定义是可以
    //又加香蕉又苹果的，但是在一堆苹果中添加了一个香蕉就破坏了苹果集合的定义
    List<? extends Wheel> wheelList = new ArrayList<DryWheel>();//list是需要说明 逆变或者 协变
    //逆变 向上变化   协变 向下变化 从父到子 协助变化
    public void test(){
        //wheelList.add(new DryWheel());//即便通过协变的语法 让一个子类集合充当了父类集合 即一堆轮胎可以用 一堆干轮胎来表示，
        //// 但是绝对不允许对这堆轮胎做添加操作
    }
}
class Wheel{

}
class DryWheel extends  Wheel{

}
class WetWheel extends Wheel{

}
